Data delivery systems present many challenges for the system designer. For instance, clients can have different display, power, communication, and computational capabilities and/or different access privileges to delivered content. In addition, communication links in the system can have different maximum bandwidths, quality levels, and time-varying characteristics. A successful data delivery system should be able to deliver data streams to a multitude of diverse clients over heterogeneous networks with time-varying characteristics.
Providing proper security in order to protect content from eavesdroppers is another important consideration in the design of data delivery systems. Generally, to provide security, data are transported in encrypted form.
Stream adaptation, or transcoding, can be performed to scale data streams for different downstream client capabilities and/or access privileges and network conditions. A transcoder takes a compressed, or encoded, data stream as an input, and then processes it to produce another encoded data stream as an output. Examples of transcoding operations include bit rate reduction, rate shaping, spatial downsampling, and frame rate reduction. Transcoding can improve system scalability and efficiency, for example, by adapting the spatial resolution of an image to a particular client's display capabilities or by dynamically adjusting the bit rate of a data stream to match a network channel's time-varying characteristics.
Information about local and downstream network conditions and client capabilities/privileges can be collected and updated and content scaled according to that information. This can be more efficient than scaling the data at the source, because it is more difficult for the source to collect up-to-date and detailed information about conditions inside the network, especially at locations in the network relatively far removed from the source. Also, the source provides only one control point at the beginning of the delivery path, while intermediate transcoding nodes provide many additional control points at more strategic locations along the delivery path.
While network transcoding facilitates scalability in data delivery systems, it also presents a number of challenges. The process of transcoding can place a substantial computational load on transcoding nodes. While computationally efficient transcoding algorithms have been developed, they may not be well-suited for processing hundreds or thousands of streams at intermediate network nodes.
Furthermore, transcoding poses a threat to the security of the delivery system because conventional transcoding operations generally require that an encrypted stream be decrypted before transcoding. The transcoded result is re-encrypted but is decrypted at the next transcoder. Each transcoder thus presents a possible breach in the security of the system. This is not an acceptable situation when end-to-end security is required.
Compression, or encoding, techniques are used to reduce the redundant information in data, thereby facilitating the storage and distribution of the data by, in effect, reducing the quantity of data. The JPEG (Joint Photographic Experts Group) standard describes one popular, contemporary scheme for encoding image data. While JPEG is satisfactory in many respects, it has its limitations when it comes to current needs. A newer standard, the JPEG2000 standard, is being developed to meet those needs. However, even with the JPEG2000 standard, decryption of encrypted data is needed for transcoding, and transcoding processes remain computationally intensive. Furthermore, the introduction of a new standard such as JPEG2000 means that each of the large number of network nodes, as well as client devices, needs to be updated in order to be made compliant with the JPEG2000 standard.
Accordingly, a method and system that can allow the secure transmission of data to a variety of end users who have different capabilities and/or access privileges in a secure and computationally efficient manner would be advantageous. The present invention provides these as well as other advantages.